package com.kolalo.annotation;

//import com.kolalo.annotation.beans.service.ServiceBeanTest;
//
//public class MainApp {
//    public static void main(String[] args) {
//        ServiceBeanTest bean=new ServiceBeanTest();
//
//        bean.Test();
//    }
//}


import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import cn.chinapost.jdpt.pcp.web.common.utils.CommonUtils;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
 * 中国邮政新一代寄递平台<br/>
 * <br/>
 * 子系统名: <br/>
 * 模块名: <br/>
 * 文件名称: SurfaceErpApiTest.java <br/>
 * 创建日期: 2019年3月5日下午6:52:45 <br/>
 * 创建人: wubm<br/>
 * 版权所有: 2019 中国邮政集团公司保留所有权利<br/>
 */
/**
 * 名称：面单接口测试类<br>
 * 功能：面单接口测试数据发送和接收示例<br/>
 * <br/>
 *
 * @since JDK 1.7
 * @see
 * @authorwubm
 */
public class SurfaceErpApiTest {
   public void t(){
       // 判断是否返回面单文件数据
// 十六进制的文件数据
       String hexFileData = labelElt.getString("fileData");
       String barCode = labelElt.getString("customerNo");
// 转为字节数组
       byte[] fileBytes = CommonUtils.hexToByteArray(hexFileData); // 次方法请自己实现
// 如果是压缩文件
       if (labelElt.containsKey("isZip")&&labelElt.getBoolean("isZip") == true) {
           writeToFile("d:/tmp.zip", fileBytes);
           File tmpFile = new File("d:/tmp.zip");
           ZipFile zip = new ZipFile(tmpFile);
// 解压读取压缩文件
           ZipInputStream zipIn = new ZipInputStream(
                   new ByteArrayInputStream(fileBytes));
           try {
               ZipEntry zipEntry = null;
// 循环读取所有压缩文件中的各个文件数据
               do {
                   zipEntry = zipIn.getNextEntry();
                   if (zipEntry != null) {
                       try {
// 得到解压的面单文件字节数据
// byte[] unzipedFileData = zipEntry.getExtra();
                           InputStream pdfIn = zip.getInputStream(zipEntry);
                           byte[] unzipedFileData = readInputStream(pdfIn);
                           // TODO 保存或打印面单文件数据unzipedFileData，请自行处理
                           saveAsFile(zipEntry.getName(), unzipedFileData);
                       }
                       finally {
                           zipEntry.clone();
                       }
                   }
               } while (zipEntry != null);
           }
           finally {
               zipIn.close();
               zip.close();
           }
       }
       else { // 不是压缩数据，只有单个面单文件,直接保存或者输出到打印机打印
           // TODO 自行保存或者打印fileBytes
       }
   }
}